import axios from 'axios'
import { ElMessage } from 'element-plus'
import { getToken } from './token'
import useStore from '@/stores'
import router from '@/router'

const instance = axios.create({
    // baseURL: 'http://ibuy123.cn:8888/',
    // baseURL: '/devApi/',
    baseURL: import.meta.env.VITE_APP_BASE_URL,
    timeout: 5000
})
// 添加请求拦截器
instance.interceptors.request.use(
    function (config) {
        // 在发送请求之前做些什么
        const token = getToken()
        if (token) {
            config.headers['token'] = token
        }
        return config
    },
    function (error) {
        // 对请求错误做些什么
        return Promise.reject(error)
    }
)
// 添加响应拦截器
instance.interceptors.response.use(
    function (response) {
        // 对响应数据做点什么
        console.log('响应拦截器 response', response)
        const data = response.data
        if (data.code == 0) {
            return Promise.resolve(data)
        } else {
            ElMessage.error(data.msg)
            return Promise.reject(data)
        }
    },
    function (error) {
        // 对响应错误做点什么
        console.log('响应拦截器 error', error)
        const errorData = error.response.data
        // 自动登出
        if (errorData.code === 999) {
            const store = useStore()
            store.app.updateToken('')
            router.replace({
                name: 'Login'
            })
        }
        ElMessage.error(errorData.msg)
        return Promise.reject(error)
    }
)
export default instance